package system

import (
	"github.com/gogf/gf/v2/frame/g"
	"github.com/sagoo-cloud/sagooiot/api/v1/common"
)

// GetSysOauthListReq 获取数据列表
type GetSysOauthListReq struct {
	g.Meta `path:"/sys_oauth/list" method:"get" summary:"获取应用列表" tags:"单点登录"`
	common.PaginationReq
}
type GetSysOauthListRes struct {
	Data []GetSysOauthByIdRes
	common.PaginationRes
}

// GetSysOauthListReq 获取数据列表
type GetSysOauthListFrontReq struct {
	g.Meta `path:"/sys_oauth/list_front" method:"get" summary:"获取应用列表（登录页）" tags:"登录"`
	common.PaginationReq
}
type GetSysOauthListFrontRes struct {
	Data []GetSysOauthFrontRes
	common.PaginationRes
}
type GetSysOauthFrontRes struct {
	OauthType   string `json:"oauthType"          description:"认证方式"`
	Scope       string `json:"scope"          description:"scope"`
	Img         string `json:"img"          description:"第三方应用图标"`
	Id          string `json:"id"          description:""`
	ClientId    string `json:"clientId"          description:"第三方client_id"`
	Name        string `json:"name"          description:"第三方名称"`
	IsCreate    string `json:"isCreate"          description:"是否自动创建用户(0否，1是)"`
	CreatedAt   string `json:"createdAt"          description:""`
	CodeUrl     string `json:"codeUrl"          description:"授权url"`
	OauthUrl    string `json:"oauthUrl"          description:"获取token的url"`
	UserUrl     string `json:"userUrl"          description:"获取用户信息的url"`
	RedirectUrl string `json:"redirectUrl"          description:"回调地址"`
}

// GetSysOauthByIdReq 获取指定ID的数据
type GetSysOauthByIdReq struct {
	g.Meta `path:"/sys_oauth/get" method:"get" summary:"获取应用" tags:"单点登录"`
	Id     int `json:"id"        description:"id" v:"required#id不能为空"`
}
type GetSysOauthByIdRes struct {
	ThirdName    string `json:"thirdName"          description:"第三方平台返回的用户名称字段"`
	DefPass      string `json:"defPass"          description:"默认密码"`
	DefDept      int    `json:"defDept"          description:"默认部门"`
	OauthType    string `json:"oauthType"          description:"认证方式"`
	Scope        string `json:"scope"          description:"scope"`
	ClientSecret string `json:"clientSecret"          description:"第三方client_secret"`
	Img          string `json:"img"          description:"第三方应用图标"`
	Id           string `json:"id"          description:""`
	ClientId     string `json:"clientId"          description:"第三方client_id"`
	ThirdAvatar  string `json:"thirdAvatar"          description:"第三方平台返回的用户头像字段"`
	UpdatedAt    string `json:"updatedAt"          description:""`
	Name         string `json:"name"          description:"第三方名称"`
	ThirdId      string `json:"thirdId"          description:"第三方平台返回的用户id字段"`
	IsCreate     string `json:"isCreate"          description:"是否自动创建用户(0否，1是)"`
	DefRole      int    `json:"defRole"          description:"默认角色"`
	DefPost      int    `json:"defPost"          description:"默认岗位"`
	CreatedAt    string `json:"createdAt"          description:""`
	CodeUrl      string `json:"codeUrl"          description:"授权url"`
	OauthUrl     string `json:"oauthUrl"          description:"获取token的url"`
	UserUrl      string `json:"userUrl"          description:"获取用户信息的url"`
	RedirectUrl  string `json:"redirectUrl"          description:"回调地址"`
}

// AddSysOauthReq 添加数据
type AddSysOauthReq struct {
	g.Meta       `path:"/sys_oauth/add" method:"post" summary:"添加应用" tags:"单点登录"`
	Img          string `json:"img"         v:"required#请填写logo地址" description:"第三方应用图标"`
	ThirdName    string `json:"thirdName"          description:"第三方平台返回的用户名称字段"`
	DefPass      string `json:"defPass"          description:"默认密码"`
	DefDept      int    `json:"defDept"          description:"默认部门"`
	OauthType    string `json:"oauthType"          description:"认证方式"`
	Scope        string `json:"scope"          description:"scope"`
	ClientSecret string `json:"clientSecret"     v:"required#请填写clientSecret"     description:"第三方client_secret"`
	ClientId     string `json:"clientId"    v:"required#请填写clientId"       description:"第三方client_id"`
	ThirdAvatar  string `json:"thirdAvatar"          description:"第三方平台返回的用户头像字段"`
	DefRole      int    `json:"defRole"       v:"required#请选择角色"     description:"默认角色"`
	UpdatedAt    string `json:"updatedAt"          description:""`
	Name         string `json:"name"        v:"required#请填写应用名称"       description:"第三方名称"`
	ThirdId      string `json:"thirdId"          description:"第三方平台返回的用户id字段"`
	IsCreate     int    `json:"isCreate"       description:"是否自动创建用户(0否，1是)"`
	RedirectUrl  string `json:"redirectUrl"    v:"required#请填写redirectUrl"       description:"回调地址"`
	DefPost      int    `json:"defPost"    v:"required#请填写defPost"       description:"默认岗位"`
	CreatedAt    string `json:"createdAt"          description:""`
	CodeUrl      string `json:"codeUrl"   v:"required#请填写授权url"         description:"授权url"`
	OauthUrl     string `json:"oauthUrl"       v:"required#请填写获取token的url"    description:"获取token的url"`
	UserUrl      string `json:"userUrl"         description:"获取用户信息的url"`
}
type AddSysOauthRes struct{}

// EditSysOauthReq 编辑数据api
type EditSysOauthReq struct {
	g.Meta `path:"/sys_oauth/edit" method:"put" summary:"编辑应用" tags:"单点登录"`
	Id     string `json:"id"          description:""`

	Img          string `json:"img"         v:"required#请填写logo地址" description:"第三方应用图标"`
	ThirdName    string `json:"thirdName"          description:"第三方平台返回的用户名称字段"`
	DefPass      string `json:"defPass"          description:"默认密码"`
	DefDept      string `json:"defDept"          description:"默认部门"`
	OauthType    string `json:"oauthType"          description:"认证方式"`
	Scope        string `json:"scope"          description:"scope"`
	ClientSecret string `json:"clientSecret"     v:"required#请填写clientSecret"     description:"第三方client_secret"`
	ClientId     string `json:"clientId"    v:"required#请填写clientId"       description:"第三方client_id"`
	ThirdAvatar  string `json:"thirdAvatar"          description:"第三方平台返回的用户头像字段"`
	DefRole      int    `json:"defRole"       v:"required#请选择角色"     description:"默认角色"`
	UpdatedAt    string `json:"updatedAt"          description:""`
	Name         string `json:"name"        v:"required#请填写应用名称"       description:"第三方名称"`
	ThirdId      string `json:"thirdId"          description:"第三方平台返回的用户id字段"`
	IsCreate     string `json:"isCreate"          description:"是否自动创建用户(0否，1是)"`
	RedirectUrl  string `json:"redirectUrl"    v:"required#请填写redirectUrl"       description:"回调地址"`
	DefPost      int    `json:"defPost"          description:"默认岗位"`
	CreatedAt    string `json:"createdAt"          description:""`
	CodeUrl      string `json:"codeUrl"   v:"required#请填写授权url"         description:"授权url"`
	OauthUrl     string `json:"oauthUrl"       v:"required#请填写获取token的url"    description:"获取token的url"`
	UserUrl      string `json:"userUrl"         description:"获取用户信息的url"`
}
type EditSysOauthRes struct{}

// DeleteSysOauthReq 删除数据
type DeleteSysOauthReq struct {
	g.Meta `path:"/sys_oauth/delete" method:"delete" summary:"删除应用" tags:"单点登录"`
	Ids    []int `json:"ids"        description:"ids" v:"required#ids不能为空"`
}
type DeleteSysOauthRes struct{}
